package com.tarzan.edu.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.tarzan.edu.entity.EduCourse;
import com.tarzan.edu.entity.api.EduCourseApiResp;
import com.tarzan.edu.entity.api.IndexVO;
import com.tarzan.edu.entity.request.EduCourseIdReq;
import com.tarzan.edu.entity.request.EduCourseReq;
import com.tarzan.edu.entity.response.CoursePublishVo;
import com.tarzan.edu.entity.response.EduCourseResp;

/**
 * @author liujinshan
 * @title: IEduCourseService
 * @projectName com.tarzan.edu.service
 * @description: TODO
 * @date 2021/5/25 16:49
 */
public interface IEduCourseService extends IService<EduCourse> {
    String insert(EduCourse eduCourse);

    void delete(String id);

    IPage<EduCourseResp> findCoursePageInfo(EduCourseReq eduCourseReq);

    EduCourseResp findCourseById(String id);

    void update(EduCourse eduCourse);

    /**
     * @title findCoursePublishById
     * @description TODO 根据课程id查询相关信息
     * @param id
     * @return java.lang.Object
     * @author liujinshan
     * @data 2021/8/17 10:40
     */
    CoursePublishVo findCoursePublishById(String id);

    /**
     * @title publishCourse
     * @description TODO 发布课程
     * @param req
     * @return void
     * @author liujinshan
     * @data 2021/8/17 10:53
     */
    void publishCourse(EduCourseIdReq req);

    /**
     * @title index
     * @description TODO 获取 课程、教师信息 在首页展示
     * @param
     * @return java.lang.Object
     * @author liujinshan
     * @data 2021/8/17 15:20
     */
    IndexVO index();

    /**
     * @title findApiCourseById
     * @description TODO
     * @param id
     * @return com.tarzan.edu.entity.api.EduCourseApiResp 
     * @author liujinshan
     * @data 2021/8/20 9:38
     */
    EduCourseApiResp findApiCourseById(String id);
}
